Code downloads are often performed in a system on a chip (SoC) environment. In the code download, program code and data can be transferred to the SoC from an outside source. There are a number of reasons why a code download can be performed. For instance, within the SoC, the code download could be performed due to such factors as updating code on the SoC, sending particular parameters to code already running in the SoC, and so on. Furthermore, it is possible that the volatile memory storage in the SoC does not have enough memory space to run the entire desired program.
Ensuring data security is an important design consideration of SoC architecture. In certain circumstances, an unauthorized third party can attempt to record or otherwise intercept sensitive data stored within the SoC, thereby either decreasing the commercial value of the data, or otherwise comprising the security of the SoC.
The interception can occur when the third party substitutes code to gain access to sensitive code that is stored within the SoC. This interception can occur during the reception of code or the processing of code by the SoC. The sensitive code stored within the SoC could contain a decryption key, which the unauthorized third party might try to copy or otherwise access through use of altered downloaded code.
Therefore, what is needed is a method and system for ensuring that such code downloaded into an SoC or other processing device has not been modified.